6、时间显示
题目 时间显示
思路分析
不知道一秒等于多少毫秒 直接寄
发现无需知道是哪天 只要做模即可
把给定的数 先模上86400000得到在那一天已经过了的毫秒数
然后把这个数除以3600000得到小时数
模上3600000 得到剩下的毫秒数
再除以60000得到分钟数
模上600000得到剩下的毫秒数
除以1000得到秒数
第一个案例:46800999
13:00:00
第二个案例:1618708103123
没问题 然后考虑一下数据范围问题 再来敲代码
取的都是整数 没涉及到小数 所以整型可以
然后数据最大说是$10^{18} $ int 10位 long long 19位 所以这题long long 可以解决
开搞!
md这题写了半个小时 简单但是要细心 不能被吓到
代码实现
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
int main()
{
LL alltime;
cin>>alltime;
// LL curday=alltime/86400000;//天数
LL dayremain=alltime%86400000;
LL curhour=dayremain/3600000; //cout<<curhour<<" ";
LL hourremain=dayremain%3600000;
LL curminute=hourremain/60000; //cout<<curminute<<" ";
LL minuteremain=hourremain%60000;
LL cursecond=minuteremain/1000; //cout<<cursecond<<" ";
printf("%02d:%02d:%02d",curhour,curminute,cursecond);
return 0;
}
💬 评论